What makes the genre

Classic Rock?

A short narrative based upon the data collected through radio stations

Led Zeppelin is classic rock. So are Mötley Crüe and Ozzy Osbourne. But what about U2 or Nirvana? As a child of the 1990s, I never doubted that any of these bands were classic rock, even though it may be shocking for many to hear. And then I heard Green Day’s songs on classic rock station, and I was shocked. It was my first time hearing a band I grew up with referred to as “classic rock.” Almost anyone who listens to music over a long enough period of time probably experiences this moment — my colleagues related some of their own, like hearing R.E.M. or Guns N’ Roses on a classic rock station — but it made me wonder, what precisely is classic rock? As it turns out, a massive amount of data collection and analysis, and some algorithms, go into figuring out the answer to that very question.

1960 1955 1965 1970 1975 1980 Crosby, Stills, Nash& Young 1968 Kiss 1973 Def Leppard 1977 David Bowie 1962 Bruce Springsteen 1964 Van Halen 1972 AC/DC 1973 Grateful Dead 1965 Journey 1973 Steely Dan 1972 The Police 1977 Fleetwood Mac 1967 Bob Dylan 1959 Deep Purple 1968 Lynard Skynyrd 1964 Black Sabbath 1968 Queen 1970 Steppenwolf 1967 Tom Petty & The Heartbreakers 1976 Santana 1966 Love 1965 Peter Frampton 1966 Yes 1968 Credence ClearwaterRevival 1969 Eric Clapton 1962 The Allman Brothers 1969 Janis Joplin 1969 Aerosmith 1970 Rush 1968 The Eagles 1971 Pink Floyd 1965 The Who 1964 Jimi Hendrix 1966 The Doors 1965 Rolling Stones 1962 The Beatles 1960 Led Zeppelin 1968
```vis width: 600 height: 400 data: url: data/data.csv selection: mouHov: type: multi 'on': mouseover nearest: true mark: bar encoding: x: type: nominal field: Release Year axis: grid: 0 y: type: quantitative field: PlayCount axis: grid: 0 tooltip: field: PlayCount type: quantitative ``` ```vis width: 600 height: 400 data: url: data/list2.csv selection: paintbrush: type: multi 'on': mouseover nearest: true mark: circle encoding: x: type: quantitative field: Percentage of Plays axis: grid: 0 y: type: nominal field: Artist axis: grid: 0 color: condition: selection: paintbrush field: Percentage of Plays type: nominal value: grey size: field: Percentage of Plays type: quantitative tooltip: field: Artist type: nominal ``` ```vis width: 600 height: 400 data: url: data/list1.csv mark: bar encoding: x: type: quantitative field: Play Count scale: rangeStep: 1 y: type: ordinal field: Song sort: descending color: type: Ordinal field: Play Count tooltip: type: quantitative field: Play Count ``` ```vis width: 600 height: 400 data: url: data/zone.csv mark: circle encoding: x: type: nominal field: artist y: type: nominal field: cities size: field: played type: quantitative color: type: ordinal field: zone tooltip: type: nominal field: artist ``` ```vis $schema: https://vega.github.io/schema/vega/v3.0.json width: 960 height: 500 padding: top: 25 left: 0 right: 0 bottom: 0 signals: - name: hover value: 'on': - events: "symbol:mouseover" update: datum - events: "symbol:mouseout" update: 'null' - name: title value: Classic Rock Across America update: 'hover ? hover.artist + '' ('' + hover.cities+ '')'' : ''Classic Rock Across America''' data: - name: plays url: data/zone.csv format: type: csv parse: auto transform: - type: aggregate groupby: - played fields: - played as: - played - name: states url: data/usamap.json format: type: topojson feature: collection transform: - type: geopath projection: projection - name: artists url: data/zone.csv format: type: csv parse: auto transform: - type: geopoint projection: projection fields: - longitude - latitude - type: filter expr: datum.x != null && datum.y != null projections: - name: projection type: albersUsa scale: 1200 translate: - signal: width/2 - signal: height/2 scales: - name: size type: linear domain: data: plays field: played range: - 1 - 500 marks: - type: path from: data: states encode: enter: fill: value: grey stroke: value: "#dedede" update: path: field: path - type: symbol from: data: artists encode: enter: size: scale: size field: played fill: value: steelblue fillOpacity: value: 0.8 stroke: value: white strokeWidth: value: 1.5 update: x: field: x y: field: y - type: text interactive: false encode: enter: x: signal: width offset: -5 y: value: 0 fill: value: black fontSize: value: 20 align: value: right update: text: signal: title ```